// 引入接口文件
import { getDetail,derive} from './enrollListServ.js'

import { download } from '../../../../utils/util.js';

// 对象和JSON字符串互转
import { parse } from 'qs'
// 弹出消息框
import { message } from 'antd'
// 日期处理对象
import moment from 'moment'
/* isEmpty 对象是否为空
 * isArray 对象是否数组
 * cloneDeep 对象深拷贝
 */
import {isEmpty, isArray, cloneDeep, merge} from 'lodash'
// 引入路由对象
import { hashHistory } from 'dva/router'
import config from 'config/config';
// seckillProductId  projectId houseTypeName detail  area propertyType(商品类型(1,房源，2,停车位，3：商)  seckillPricepropertyType originalPrice initPrice grads securityMoney earnestMoney squarePrice orientation tags imageUrls
// 项目名称  活动名称  商品类型 商品状态


// 初始默认状态
const defultState = {
  loading: false,
  biz:{
    queryForm: {},
  },
  currentItem:{},
  showModal:false,
  detail:{},
  query:{}
}

// 声明module
const tmpModule = {
  // namespace: 'productListModel',
  // 默认状态
  state: cloneDeep(defultState),
  // 入口函数(先执行)
  subscriptions: {
    setup ({dispatch, history}) {
      history.listen(({ pathname, query }) => {
        // 页面路由匹配时执行
        if('' + tmpModule.pathname === '' + pathname){
          dispatch({ type: 'updateStore', payload: {query} });//每次进去页面先重置状态
          // 执行业务操作
        } // end if
      }) // end listen
    },
  },

  // 方法列表
  effects: {
    //详情
    *getDetail({payload},{put,call,select}){
      let {data,success}=yield call(getDetail,{...payload})
      if(success){
        yield put({
          type:'updateStore',
          payload:{
            detail:data
          }
        })
      }
    },
    *derive({payload},{put,call,select}){
      let {biz} = yield select(d => d[tmpModule.namespace])
      console.log(biz)
      let {data,success}=yield call(derive,{...biz.queryForm,activityType:2})
      if(success){
        download(data)
      }
    }
    
  },

  // 存入状态机
  reducers: {
    updateStore(preState, action) {
      return Object.assign({}, preState, action.payload)
    },
  }
}

export default tmpModule
